An important aspect of making computers powerful is to make it easy for users and application developers to make new and custom applications. A conceptual model that supports this and necessary display mechanisms was described in two prior patents U.S. Pat. No. 4,486,857 and U.S. Pat. No. 4,736,308. The inventions described therein are implemented in a program called Zoomracks. Zoomracks is a trademark of Quickview Systems and is available from Quickview Systems at 146 Main Street, Los Altos, CA. 94022. U.S. Pat. No. 4,486,857 describes a system that displays portions of a record, truncating the fields to fit the screen size. In particular the records, which may be referred to as screens or cards, each may contain multiple fields where the fields are truncated so an entire card can be viewed on the screen at once with only parts of individual fields showing. Typically there would be several cards (or records) in a stack (or file). There is a mechanism to select and zoom any individual field to show it in its entirely even if it is longer then the whole screen.
U.S. Pat. No. 4,736,308 is an improvement that allows the user to view portions of many such cards and lets users organize and view their cards in overlayed groups or stacks so that they appear to be in racks like time cards at at time clock. While not described in the patents, the Zoomracks program allows users to create macros and do simple programming which, combined with the patented technology, enables users to do a wide variety of applications. The invention described herein builds on the inventions described in U.S. Pat. Nos. 4,486,857 and 4,736,308.
Most data base programs are based on computer concepts of computer files and records and are designed for keeping information and creating reports. More sophisticated data base management programs are relational in that they permit the user to relate two or more separate files that have a common field in each of the various records.
HyperCard, which is available from Apple Computer, Inc, 20525 Mariani Ave, Cupertino, CA., 95014, uses concepts in U.S. Pat. No. 4,486,857. HyperCard is a trademark of Apple Computer. Zoomracks and HyperCard approach data bases differently from conventional data bases. They are designed as flexible platforms that support multiple applications within a common metaphor. The variety of applications they support are much wider than conventional data base applications and include word processing, hypertext and a variety of other applications not normally addressed by data base programs. The new approach brings the familiarity of index cards in stacks and racks, where a rack or stack is analogous to a file, along with the power to store large amounts of information in fields and zoom and scroll it.
HyperCard advanced the state of the art over Zoomracks. The invention described herein is an advance over HyperCard. Since the system described here is implemented on HyperCard which is widely available, the focus of the description is its use with HyperCard, although the invention is not so limited and could be used with other data bases. HyperCard is based on the metaphor of (index) cards in stacks where the user is able to see a single card at a time. Each screen consists of a background with is common for all cards in the stack and a card portion which is different for each card. Both the card and background portion consist of layers, like the a layers of transparencies used to create animated movies. The bottom background layer contains a visual image which can be created with HyperCard's paint commands. Each higher background layer contains a single object comprising either a field with text information or a "button" with a name, image or both that, when activated, executes an application program or "script" associated with the button and is written in a proprietary Apple language called HyperTalk. HyperTalk is a trademark of Apple Computer. HyperTalk is an object oriented programming language consisting of modules that are called "handlers" which are similar to subroutines in function. While these buttons and fields can overlay parts or all of buttons or fields on lower transparencies, usually fields and buttons do not overlap each other unless the are zoomed.
On top of the background layers are placed a similar set of layers for each card in a particular stack. While a card can have as many or more buttons and fields as a stack background does, it often has no buttons or fields. As the user goes from one card to another, the card portion changes but the background portion stays the same. A background field is a special case in that its contents (text) changes but its form (location, size, style) stays the same.
The fields and buttons are objects that are attached on the cards and backgrounds in layers, have properties or attributes most of which specify how they look. Object, button, field and property are terms of art which have technical meanings; however, the use of such terms is for illustration purposes only and does not limit the scope of this invention. Fields and button properties include style (opaque, rectangle, scrolling, or transparent), width (measured in pixels or number of dots), height(pixels), top(pixels), and left (pixels), textfont (Geneva, Helvetica), teststyle (bold, plain, italic), and textsize (pixels). Changing a property changes how the field or button is displayed on the screen. Thus changing a text style from bold to italic displays the same text for that object in italic rather than bold, or changing height changes the height of the object. Most properties can be changed graphically with HyperCard commands; all properties can be changed by a single HyperTalk programming language statement. An important property is "visible" which specifies whether or not an object is visible on the screen.
In essence a HyperCard stack is an application with the data provided in the fields and the functional capability provided in the "button" scripts. The applications are modularly segmented into button scripts. To execute a function the user selects the appropriate button and executes it. Typically, a button has a graphic icon although it may use a text name. Buttons, which were known before HyperCard, provide an alternative to menus, commands, or macros as a mechanism for initiating actions.
Users and developers can build applications by putting objects on the backgrounds and can modify the applications by changing the objects properties and scripts. HyperCard makes it easier for people to develop and prototype applications and try out different user interfaces.
HyperCard and other current technologies provide a framework in which users can develop and modify programs if they are reasonably straightforward. However, richer and more complicated applications that consist of functions (or tools) have potential interactions that grow exponentially in their complexity and are thus more difficult to develop and maintain. It normally requires an experienced programmer to create and modify such programs. This invention provides a framework which lets developers and users organize applications into fields and buttons and provides a mechanism to manage the user interface formats that these applications present on the screen. The invention brings new power to both experienced and inexperienced programmers alike in that they can develop, modify, and upgrade more sophisticated applications.
Computers programs that are based on metaphors have proven useful as being easier to understand and use. The spreadsheet metaphor popularized by VisiCalc and the desktop metaphor invented by Xerox and popularized on the Macintosh are examples of these. The invention described here is largely based on the metaphor of genes. Genes which are the basis of all life have the following similarities to the metaphor described:
(a) they encode form(at) information,
(b) they encode information efficiently in that a small change can have global effects,
(c) they can be cloned to create copies of themselves,
(d) they can be translating or turned on which causes a specific form(at) (in the case of living genes, protein) to be constructed from existing elements (objects or amino acids).
(e) The information encoded can continue to evolve supporting more complex form(at)s. New information can be added to a genome without interfering with the existing genes. They support an evolutionary rather than a revolutionary approach to design change.
(f) They allow the transmission of of genetic information from one organism to another (conjugation) and the creation of descendant organisms which contain genetic information from two parents.
(g) Genetic engineering allows changing a gene's encoding to change the resulting form(at),
(h) Recombination is inserting genetic information from one organism into another.
The last two of the above processes are artificial, the rest are natural. All of these processes are supported by analogy in the invention described here.